์๋ฐ์คํฌ๋ฆฝํธ ๋ฉ๋ชจ๋ฆฌ ๋์ ํ์ง๋ฅผ ์ํ ๋ธ๋ผ์ฐ์ ์ฑ๋ฅ ํ๋กํ์ผ๋ง ์ข ํฉ ๊ฐ์ด๋. ์น ์ ํ๋ฆฌ์ผ์ด์ ์ต์ ํ๋ฅผ ์ํ ๋๊ตฌ, ๊ธฐ๋ฒ, ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ค๋ฃน๋๋ค.
๋ธ๋ผ์ฐ์ ์ฑ๋ฅ ํ๋กํ์ผ๋ง: ์๋ฐ์คํฌ๋ฆฝํธ ๋ฉ๋ชจ๋ฆฌ ๋์ ํ์ง ๋ฐ ํด๊ฒฐ
์น ๊ฐ๋ฐ์ ์ธ๊ณ์์ ์ฑ๋ฅ์ ๊ฐ์ฅ ์ค์ํฉ๋๋ค. ๋๋ฆฌ๊ฑฐ๋ ์๋ต์ด ์๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ์์ ๋ถ๋ง, ์ฅ๋ฐ๊ตฌ๋ ํฌ๊ธฐ, ๊ทธ๋ฆฌ๊ณ ๊ถ๊ทน์ ์ผ๋ก๋ ์์ต ์์ค๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ ๋ฉ๋ชจ๋ฆฌ ๋์๋ ์ฑ๋ฅ ์ ํ์ ์ค์ํ ์์ธ์ ๋๋ค. ์ข ์ข ๋ฏธ๋ฌํ๊ณ ์ ์ฌ์ ์ผ๋ก ๋ฐ์ํ๋ ์ด๋ฌํ ๋์๋ ์ ์ฐจ์ ์ผ๋ก ๋ธ๋ผ์ฐ์ ๋ฆฌ์์ค๋ฅผ ์๋ชจํ์ฌ ์๋ ์ ํ, ์ถฉ๋ ๋ฐ ์ข์ง ์์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๋ฐํฉ๋๋ค. ์ด ์ข ํฉ ๊ฐ์ด๋๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ํ์ง, ์ง๋จ ๋ฐ ํด๊ฒฐํ๋ ๋ฐ ํ์ํ ์ง์๊ณผ ๋๊ตฌ๋ฅผ ์ ๊ณตํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ํํ๊ณ ํจ์จ์ ์ผ๋ก ์คํ๋๋๋ก ๋ณด์ฅํฉ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ดํดํ๊ธฐ
๋์ ํ์ง์ ์์, ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ๊ด๋ฆฌํ๋์ง ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ฐ๋น์ง ์ปฌ๋ ์ ์ด๋ผ๋ ํ๋ก์ธ์ค๋ฅผ ํตํด ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ฐ๋น์ง ์ปฌ๋ ํฐ๋ ์ฃผ๊ธฐ์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ณํ๊ณ ํ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ๋น์ง ์ปฌ๋ ํฐ์ ํจ์จ์ฑ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๋์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ๊ฐ์ฒด๊ฐ ์๋์น ์๊ฒ ๊ณ์ ์ด์ ์์ผ๋ฉด ๊ฐ๋น์ง ์ปฌ๋ ํฐ๋ ํด๋น ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ํ ์ ์๊ฒ ๋์ด ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ๋ฐ์ํฉ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ๋ฉ๋ชจ๋ฆฌ ๋์์ ์ผ๋ฐ์ ์ธ ์์ธ
๋ช ๊ฐ์ง ์ผ๋ฐ์ ์ธ ํ๋ก๊ทธ๋๋ฐ ํจํด์ด ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ์ ๋ฐํ ์ ์์ต๋๋ค:
- ์ ์ญ ๋ณ์: ์ค์๋ก ์ ์ญ ๋ณ์๋ฅผ ์์ฑํ๋ฉด(์:
var,let, ๋๋constํค์๋ ์๋ต) ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ํด๋น ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ํ๋ ๊ฒ์ ๋ง์ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ณ์๋ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ช ์ฃผ๊ธฐ ๋์ ๊ณ์ ์ ์ง๋ฉ๋๋ค. - ์ํ์ง ํ์ด๋จธ์ ์ฝ๋ฐฑ:
setInterval๋ฐsetTimeoutํจ์๋ ์ด๋ฒคํธ ๋ฆฌ์ค๋์ ํจ๊ป ๋ ์ด์ ํ์ํ์ง ์์ ๋ ์ ๋๋ก ์ง์์ง๊ฑฐ๋ ์ ๊ฑฐ๋์ง ์์ผ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๋ค. ์ด๋ฌํ ํ์ด๋จธ์ ๋ฆฌ์ค๋๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด์ ๋ํ ์ฐธ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉด, ํด๋น ๊ฐ์ฒด๋ค๋ ๊ณ์ ์ด์์๊ฒ ๋ฉ๋๋ค. - ํด๋ก์ : ํด๋ก์ ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ด์ง๋ง, ์๋์น ์๊ฒ ํฐ ๊ฐ์ฒด๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ํ ์ฐธ์กฐ๋ฅผ ์บก์ฒํ๊ณ ์ ์งํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋์์ ๊ธฐ์ฌํ ์ ์์ต๋๋ค.
- DOM ์์ ์ฐธ์กฐ: DOM ํธ๋ฆฌ์์ ์ ๊ฑฐ๋ DOM ์์์ ๋ํ ์ฐธ์กฐ๋ฅผ ๊ณ์ ๊ฐ์ง๊ณ ์์ผ๋ฉด ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ๊ด๋ จ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํ๋ ๊ฒ์ ๋ง์ ์ ์์ต๋๋ค.
- ์ํ ์ฐธ์กฐ: ๋ ๊ฐ ์ด์์ ๊ฐ์ฒด๊ฐ ์๋ก๋ฅผ ์ฐธ์กฐํ์ฌ ์ํ์ ๋ง๋ค๋ฉด ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ํด๋น ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ณํ๊ณ ํ์ํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช์ ์ ์์ต๋๋ค.
- ๋ถ๋ฆฌ๋ DOM ํธ๋ฆฌ: DOM์์ ์ ๊ฑฐ๋์์ง๋ง ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์์ ์ฌ์ ํ ์ฐธ์กฐ๋๋ ์์๋ค์ ๋๋ค. ์ ์ฒด ํ์ ํธ๋ฆฌ๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ๋จ์ ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ์ ๊ทผํ ์ ์๊ฒ ๋ฉ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ๋ฉ๋ชจ๋ฆฌ ๋์ ํ์ง ๋๊ตฌ
์ต์ ๋ธ๋ผ์ฐ์ ๋ค์ ๋ฉ๋ชจ๋ฆฌ ํ๋กํ์ผ๋ง์ ์ํด ํน๋ณํ ์ค๊ณ๋ ๊ฐ๋ ฅํ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ค์ ์ฌ์ฉํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๋ชจ๋ํฐ๋งํ๊ณ , ์ ์ฌ์ ์ธ ๋์๋ฅผ ์๋ณํ๋ฉฐ, ์์ธ์ด ๋๋ ์ฝ๋๋ฅผ ์ ํํ ์ฐพ์๋ผ ์ ์์ต๋๋ค.
ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ
ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ๋ ํฌ๊ด์ ์ธ ๋ฉ๋ชจ๋ฆฌ ํ๋กํ์ผ๋ง ๋๊ตฌ ๋ชจ์์ ์ ๊ณตํฉ๋๋ค:
- ๋ฉ๋ชจ๋ฆฌ ํจ๋: ์ด ํจ๋์ ํ ํฌ๊ธฐ, ์๋ฐ์คํฌ๋ฆฝํธ ๋ฉ๋ชจ๋ฆฌ, ๋ฌธ์ ๋ฆฌ์์ค ๋ฑ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๋ํ ์์ ์์ค์ ๊ฐ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ํ ์ค๋ ์ท: ํ ์ค๋ ์ท์ ์ฐ์ผ๋ฉด ํน์ ์์ ์ ์๋ฐ์คํฌ๋ฆฝํธ ํ ์ํ๋ฅผ ์บก์ฒํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ์๊ฐ์ ์ฐ์ ์ค๋ ์ท์ ๋น๊ตํ๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ์ถ์ ๋๋ ๊ฐ์ฒด๋ฅผ ๋ฐ๊ฒฌํ ์ ์์ผ๋ฉฐ, ์ด๋ ์ ์ฌ์ ์ธ ๋์๋ฅผ ๋ํ๋ ๋๋ค.
- ํ์๋ผ์ธ์ ํ ๋น ๊ณ์ธก: ์ด ๊ธฐ๋ฅ์ ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ฅธ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ถ์ ํ์ฌ ์ด๋ค ํจ์๊ฐ ์ผ๋ง๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋์ง์ ๋ํ ์์ธ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ฑ๋ฅ ํจ๋: ์ด ํจ๋์ ์ฌ์ฉํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋, CPU ์ฌ์ฉ๋ฅ , ๋ ๋๋ง ์๊ฐ์ ํฌํจํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ๊ธฐ๋กํ๊ณ ๋ถ์ํ ์ ์์ต๋๋ค. ์ด ํจ๋์ ์ฌ์ฉํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๋์๋ก ์ธํ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋ณํ ์ ์์ต๋๋ค.
ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ๋ฉ๋ชจ๋ฆฌ ๋์ ํ์ง: ์ค์ ์์
๊ฐ๋จํ ์์ ๋ฅผ ํตํด ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ์๋ณํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๊ฒ ์ต๋๋ค:
์๋๋ฆฌ์ค: ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฐ๋ณต์ ์ผ๋ก DOM ์์๋ฅผ ์ถ๊ฐํ๊ณ ์ ๊ฑฐํ์ง๋ง, ์ ๊ฑฐ๋ ์์์ ๋ํ ์ฐธ์กฐ๊ฐ ๋ฌด์ฌ์ฝ ์ ์ง๋์ด ๋ฉ๋ชจ๋ฆฌ ๋์๋ก ์ด์ด์ง๋๋ค.
- ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ ์ด๊ธฐ: F12 (macOS์์๋ Cmd+Opt+I)๋ฅผ ๋๋ฌ ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฝ๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ํจ๋๋ก ์ด๋: "Memory" ํญ์ ํด๋ฆญํฉ๋๋ค.
- ํ ์ค๋ ์ท ์ฐ๊ธฐ: "Take snapshot" ๋ฒํผ์ ํด๋ฆญํ์ฌ ์ด๊ธฐ ํ ์ํ๋ฅผ ์บก์ฒํฉ๋๋ค.
- ๋์ ์๋ฎฌ๋ ์ด์ : ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ํธ ์์ฉํ์ฌ DOM ์์๊ฐ ๋ฐ๋ณต์ ์ผ๋ก ์ถ๊ฐ๋๊ณ ์ ๊ฑฐ๋๋ ์๋๋ฆฌ์ค๋ฅผ ์คํํฉ๋๋ค.
- ๋ค๋ฅธ ํ ์ค๋ ์ท ์ฐ๊ธฐ: ์ ์ ๋์ ๋์๋ฅผ ์๋ฎฌ๋ ์ด์ ํ ํ ๋ค๋ฅธ ํ ์ค๋ ์ท์ ์ฐ์ต๋๋ค.
- ์ค๋ ์ท ๋น๊ต: ๋ ๋ฒ์งธ ์ค๋ ์ท์ ์ ํํ๊ณ ๋๋กญ๋ค์ด ๋ฉ๋ด์์ "Comparison"์ ์ ํํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ ์ค๋ ์ท ์ฌ์ด์ ์ถ๊ฐ, ์ ๊ฑฐ ๋ฐ ๋ณ๊ฒฝ๋ ๊ฐ์ฒด๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
- ๊ฒฐ๊ณผ ๋ถ์: ๊ฐ์์ ํฌ๊ธฐ๊ฐ ํฌ๊ฒ ์ฆ๊ฐํ ๊ฐ์ฒด๋ฅผ ์ฐพ์ต๋๋ค. ์ด ๊ฒฝ์ฐ, ๋ถ๋ฆฌ๋ DOM ํธ๋ฆฌ์ ์๊ฐ ํฌ๊ฒ ์ฆ๊ฐํ ๊ฒ์ ๋ณผ ์ ์์ ๊ฒ์ ๋๋ค.
- ์ฝ๋ ์๋ณ: ๋ฆฌํ ์ด๋(๋์๋ ๊ฐ์ฒด๋ฅผ ๊ณ์ ์ ์งํ๋ ๊ฐ์ฒด)๋ฅผ ๊ฒ์ฌํ์ฌ ๋ถ๋ฆฌ๋ DOM ์์์ ๋ํ ์ฐธ์กฐ๋ฅผ ์ ์งํ๊ณ ์๋ ์ฝ๋๋ฅผ ์ ํํ ์ฐพ์๋ ๋๋ค.
ํ์ด์ดํญ์ค ๊ฐ๋ฐ์ ๋๊ตฌ
ํ์ด์ดํญ์ค ๊ฐ๋ฐ์ ๋๊ตฌ ๋ํ ๊ฐ๋ ฅํ ๋ฉ๋ชจ๋ฆฌ ํ๋กํ์ผ๋ง ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค:
- ๋ฉ๋ชจ๋ฆฌ ๋๊ตฌ: ํฌ๋กฌ์ ๋ฉ๋ชจ๋ฆฌ ํจ๋๊ณผ ์ ์ฌํ๊ฒ, ๋ฉ๋ชจ๋ฆฌ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ํ ์ค๋ ์ท์ ์ฐ๊ณ , ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ๊ธฐ๋กํ๋ฉฐ, ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ฅธ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๋ถ์ํ ์ ์์ต๋๋ค.
- ์ฑ๋ฅ ๋๊ตฌ: ์ฑ๋ฅ ๋๊ตฌ๋ ๋ฉ๋ชจ๋ฆฌ ๋์๋ก ์ธํ ๊ฒ์ ํฌํจํ์ฌ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋ณํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ์ด์ดํญ์ค ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ๋ฉ๋ชจ๋ฆฌ ๋์ ํ์ง
ํ์ด์ดํญ์ค์์ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ํ์งํ๋ ๊ณผ์ ์ ํฌ๋กฌ๊ณผ ์ ์ฌํฉ๋๋ค:
- ํ์ด์ดํญ์ค ๊ฐ๋ฐ์ ๋๊ตฌ ์ด๊ธฐ: F12๋ฅผ ๋๋ฌ ํ์ด์ดํญ์ค ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฝ๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๋๊ตฌ๋ก ์ด๋: "Memory" ํญ์ ํด๋ฆญํฉ๋๋ค.
- ์ค๋ ์ท ์ฐ๊ธฐ: "Take Snapshot" ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
- ๋์ ์๋ฎฌ๋ ์ด์ : ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ํธ ์์ฉํฉ๋๋ค.
- ๋ค๋ฅธ ์ค๋ ์ท ์ฐ๊ธฐ: ์ผ์ ์๊ฐ ํ๋ ํ ๋ค๋ฅธ ์ค๋ ์ท์ ์ฐ์ต๋๋ค.
- ์ค๋ ์ท ๋น๊ต: "Diff" ๋ทฐ๋ฅผ ์ ํํ์ฌ ๋ ์ค๋ ์ท์ ๋น๊ตํ๊ณ ํฌ๊ธฐ๋ ๊ฐ์๊ฐ ์ฆ๊ฐํ ๊ฐ์ฒด๋ฅผ ์๋ณํฉ๋๋ค.
- ๋ฆฌํ ์ด๋ ์กฐ์ฌ: "Retained By" ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ๋์๋ ๊ฐ์ฒด๋ฅผ ์ ์งํ๊ณ ์๋ ๊ฐ์ฒด๋ฅผ ์ฐพ์ต๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ๋ฉ๋ชจ๋ฆฌ ๋์ ๋ฐฉ์ง ์ ๋ต
๋ฉ๋ชจ๋ฆฌ ๋์๋ ๋๋ฒ๊น ํ๋ ๊ฒ๋ณด๋ค ์๋ฐฉํ๋ ๊ฒ์ด ํญ์ ๋ ์ข์ต๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์์ ๋์ ์ํ์ ์ต์ํํ๊ธฐ ์ํ ๋ช ๊ฐ์ง ๋ชจ๋ฒ ์ฌ๋ก๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์ ์ญ ๋ณ์ ํผํ๊ธฐ: ํญ์
var,let, ๋๋const๋ฅผ ์ฌ์ฉํ์ฌ ์๋๋ ๋ฒ์ ๋ด์์ ๋ณ์๋ฅผ ์ ์ธํฉ๋๋ค. - ํ์ด๋จธ ๋ฐ ์ฝ๋ฐฑ ์ ๋ฆฌ: ๋ ์ด์ ํ์ํ์ง ์์ ๋
clearInterval๋ฐclearTimeout์ ์ฌ์ฉํ์ฌ ํ์ด๋จธ๋ฅผ ์ค์งํฉ๋๋ค.removeEventListener๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ์ ๊ฑฐํฉ๋๋ค. - ํด๋ก์ ์ ์คํ๊ฒ ๊ด๋ฆฌํ๊ธฐ: ํด๋ก์ ๊ฐ ์บก์ฒํ๋ ๋ณ์์ ์ ์ํฉ๋๋ค. ๋ถํ์ํ๊ฒ ํฐ ๊ฐ์ฒด๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์บก์ฒํ์ง ์๋๋ก ํฉ๋๋ค.
- DOM ์์ ์ฐธ์กฐ ํด์ ํ๊ธฐ: DOM ํธ๋ฆฌ์์ DOM ์์๋ฅผ ์ ๊ฑฐํ ๋, ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์์ ํด๋น ์์์ ๋ํ ๋ชจ๋ ์ฐธ์กฐ๋ ํด์ ํด์ผ ํฉ๋๋ค. ํด๋น ์ฐธ์กฐ๋ฅผ ๊ฐ์ง ๋ณ์๋ฅผ
null๋ก ์ค์ ํ์ฌ ์ด๋ฅผ ์ํํ ์ ์์ต๋๋ค. - ์ํ ์ฐธ์กฐ ๋๊ธฐ: ๊ฐ์ฒด ๊ฐ์ ์ํ ์ฐธ์กฐ๊ฐ ์๋ ๊ฒฝ์ฐ, ๊ด๊ณ๊ฐ ๋ ์ด์ ํ์ํ์ง ์์ ๋ ์ฐธ์กฐ ์ค ํ๋๋ฅผ
null๋ก ์ค์ ํ์ฌ ์ํ์ ๋์ผ๋ ค๊ณ ์๋ํฉ๋๋ค. - ์ฝํ ์ฐธ์กฐ ์ฌ์ฉํ๊ธฐ (์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ): ์ฝํ ์ฐธ์กฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ์ฒด๊ฐ ๊ฐ๋น์ง ์ปฌ๋ ์ ๋๋ ๊ฒ์ ๋ง์ง ์์ผ๋ฉด์ ๊ฐ์ฒด์ ๋ํ ์ฐธ์กฐ๋ฅผ ์ ์งํ ์ ์์ต๋๋ค. ์ด๋ ๊ฐ์ฒด๋ฅผ ๊ด์ฐฐํด์ผ ํ์ง๋ง ๋ถํ์ํ๊ฒ ์ด์์๊ฒ ํ๊ณ ์ถ์ง ์์ ์ํฉ์์ ์ ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฝํ ์ฐธ์กฐ๋ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ๋ณดํธ์ ์ผ๋ก ์ง์๋์ง๋ ์์ต๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ ์ธ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ฌ์ฉํ๊ธฐ:
WeakMap๋ฐWeakSet๊ณผ ๊ฐ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ฌ์ฉ์ ๊ณ ๋ คํฉ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ์ฒด๊ฐ ๊ฐ๋น์ง ์ปฌ๋ ์ ๋๋ ๊ฒ์ ๋ง์ง ์์ผ๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฒด์ ์ฐ๊ด์ํฌ ์ ์์ต๋๋ค. - ์ฝ๋ ๋ฆฌ๋ทฐ: ์ ๊ธฐ์ ์ธ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ์ค์ํ์ฌ ๊ฐ๋ฐ ๊ณผ์ ์ด๊ธฐ์ ์ ์ฌ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๋์ ๋ฌธ์ ๋ฅผ ์๋ณํฉ๋๋ค. ์๋ก์ด ์๊ฐ์ ๋น์ ์ด ๋์น ์ ์๋ ๋ฏธ๋ฌํ ๋์๋ฅผ ์ข ์ข ๋ฐ๊ฒฌํ ์ ์์ต๋๋ค.
- ์๋ํ๋ ํ ์คํธ: ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ํ์ธํ๋ ์๋ํ๋ ํ ์คํธ๋ฅผ ๊ตฌํํฉ๋๋ค. ์ด๋ฌํ ํ ์คํธ๋ ๋์๋ฅผ ์กฐ๊ธฐ์ ๋ฐ๊ฒฌํ๊ณ ํ๋ก๋์ ์ ๋ฐฐํฌ๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
- ๋ฆฐํ ๋๊ตฌ ์ฌ์ฉ: ๋ฆฐํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋ฉ ํ์ค์ ๊ฐ์ ํ๊ณ ์ ์ญ ๋ณ์์ ์ฐ๋ฐ์ ์์ฑ๊ณผ ๊ฐ์ ์ ์ฌ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๋์ ํจํด์ ์๋ณํฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ๋์ ์ง๋จ์ ์ํ ๊ณ ๊ธ ๊ธฐ๋ฒ
์ด๋ค ๊ฒฝ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ๋์์ ๊ทผ๋ณธ ์์ธ์ ์๋ณํ๋ ๊ฒ์ด ์ด๋ ค์ ๋ ๊ณ ๊ธ ๊ธฐ์ ์ด ํ์ํ ์ ์์ต๋๋ค.
ํ ํ ๋น ํ๋กํ์ผ๋ง
ํ ํ ๋น ํ๋กํ์ผ๋ง์ ์ด๋ค ํจ์๊ฐ ์ผ๋ง๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋์ง์ ๋ํ ์์ธ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ ๋ถํ์ํ๊ฒ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ฑฐ๋ ํ ๋ฒ์ ๋ง์ ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ ํจ์๋ฅผ ์๋ณํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
ํ์๋ผ์ธ ๊ธฐ๋ก
ํ์๋ผ์ธ ๊ธฐ๋ก์ ์ฌ์ฉํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋, CPU ์ฌ์ฉ๋ฅ , ๋ ๋๋ง ์๊ฐ์ ํฌํจํ์ฌ ์ผ์ ๊ธฐ๊ฐ ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ์บก์ฒํ ์ ์์ต๋๋ค. ํ์๋ผ์ธ ๊ธฐ๋ก์ ๋ถ์ํ์ฌ ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ฅธ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ ์ง์ ์ฆ๊ฐ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ๋ํ๋ผ ์ ์๋ ํจํด์ ์๋ณํ ์ ์์ต๋๋ค.
์๊ฒฉ ๋๋ฒ๊น
์๊ฒฉ ๋๋ฒ๊น ์ ์ฌ์ฉํ๋ฉด ์๊ฒฉ ์ฅ์น๋ ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ์์ ์คํ ์ค์ธ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ฒ๊น ํ ์ ์์ต๋๋ค. ์ด๋ ํน์ ํ๊ฒฝ์์๋ง ๋ฐ์ํ๋ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ์ง๋จํ๋ ๋ฐ ์ ์ฉํ ์ ์์ต๋๋ค.
์ฌ๋ก ์ฐ๊ตฌ ๋ฐ ์์
๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ์ด๋ป๊ฒ ๋ฐ์ํ๊ณ ์ด๋ป๊ฒ ํด๊ฒฐํ ์ ์๋์ง์ ๋ํ ๋ช ๊ฐ์ง ์ค์ ์ฌ๋ก ์ฐ๊ตฌ์ ์์ ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค:
์ฌ๋ก ์ฐ๊ตฌ 1: ์ด๋ฒคํธ ๋ฆฌ์ค๋ ๋์
๋ฌธ์ : ๋จ์ผ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ (SPA)์์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ ์ง์ ์ผ๋ก ์ฆ๊ฐํฉ๋๋ค. ๋ค๋ฅธ ๋ผ์ฐํธ ๊ฐ์ ํ์ํ ํ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋๋ ค์ง๊ณ ๊ฒฐ๊ตญ ์ถฉ๋ํฉ๋๋ค.
์ง๋จ: ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ํ ์ค๋ ์ท์ ํ์ธํ ๊ฒฐ๊ณผ ๋ถ๋ฆฌ๋ DOM ํธ๋ฆฌ์ ์๊ฐ ์ฆ๊ฐํ๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค. ์ถ๊ฐ ์กฐ์ฌ ๊ฒฐ๊ณผ ๋ผ์ฐํธ๊ฐ ๋ก๋๋ ๋ DOM ์์์ ์ด๋ฒคํธ ๋ฆฌ์ค๋๊ฐ ์ฒจ๋ถ๋์ง๋ง, ๋ผ์ฐํธ๊ฐ ์ธ๋ก๋๋ ๋ ์ ๊ฑฐ๋์ง ์๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.
ํด๊ฒฐ์ฑ
: ๋ผ์ฐํธ๊ฐ ์ธ๋ก๋๋ ๋ ์ด๋ฒคํธ ๋ฆฌ์ค๋๊ฐ ์ ๋๋ก ์ ๊ฑฐ๋๋๋ก ๋ผ์ฐํ
๋ก์ง์ ์์ ํฉ๋๋ค. ์ด๋ removeEventListener ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์ด๋ฒคํธ ๋ฆฌ์ค๋ ์๋ช
์ฃผ๊ธฐ๋ฅผ ์๋์ผ๋ก ๊ด๋ฆฌํ๋ ํ๋ ์์ํฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ํํ ์ ์์ต๋๋ค.
์ฌ๋ก ์ฐ๊ตฌ 2: ํด๋ก์ ๋์
๋ฌธ์ : ํด๋ก์ ๋ฅผ ๊ด๋ฒ์ํ๊ฒ ์ฌ์ฉํ๋ ๋ณต์กํ ์๋ฐ์คํฌ๋ฆฝํธ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ๋ฐ์ํ๊ณ ์์ต๋๋ค. ํ ์ค๋ ์ท์ ๋ณด๋ฉด ๋ ์ด์ ํ์ํ์ง ์์ ํ์๋ ํฐ ๊ฐ์ฒด๋ค์ด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ง๋๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค.
์ง๋จ: ํด๋ก์ ๊ฐ ์๋์น ์๊ฒ ์ด๋ฌํ ํฐ ๊ฐ์ฒด์ ๋ํ ์ฐธ์กฐ๋ฅผ ์บก์ฒํ์ฌ ๊ฐ๋น์ง ์ปฌ๋ ์ ๋๋ ๊ฒ์ ๋ง๊ณ ์์ต๋๋ค. ์ด๋ ํด๋ก์ ๊ฐ ์ธ๋ถ ์ค์ฝํ์ ๋ํ ์๊ตฌ์ ์ธ ๋งํฌ๋ฅผ ์์ฑํ๋ ๋ฐฉ์์ผ๋ก ์ ์๋์๊ธฐ ๋๋ฌธ์ ๋ฐ์ํฉ๋๋ค.
ํด๊ฒฐ์ฑ : ํด๋ก์ ์ ๋ฒ์๋ฅผ ์ต์ํํ๊ณ ๋ถํ์ํ ๋ณ์๋ฅผ ์บก์ฒํ์ง ์๋๋ก ์ฝ๋๋ฅผ ๋ฆฌํฉํฐ๋งํฉ๋๋ค. ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ฆ์ ์คํ ํจ์ ํํ์(IIFE)๊ณผ ๊ฐ์ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ์๋ก์ด ์ค์ฝํ๋ฅผ ์์ฑํ๊ณ ์ธ๋ถ ์ค์ฝํ์ ๋ํ ์๊ตฌ์ ์ธ ๋งํฌ๋ฅผ ๋์ด์ผ ํ ์๋ ์์ต๋๋ค.
์์ : ๋์๋๋ ํ์ด๋จธ
function startTimer() {
setInterval(function() {
// Some code that updates the UI
let data = new Array(1000000).fill(0); // Simulating a large data allocation
console.log("Timer tick");
}, 1000);
}
startTimer();
๋ฌธ์ : ์ด ์ฝ๋๋ 1์ด๋ง๋ค ์คํ๋๋ ํ์ด๋จธ๋ฅผ ์์ฑํฉ๋๋ค. ๊ทธ๋ฌ๋ ํ์ด๋จธ๊ฐ ์ ๋ ์ง์์ง์ง ์์ผ๋ฏ๋ก ๋ ์ด์ ํ์ํ์ง ์์ ํ์๋ ๊ณ์ ์คํ๋ฉ๋๋ค. ๊ฒ๋ค๊ฐ, ๊ฐ ํ์ด๋จธ ํฑ์ ํฐ ๋ฐฐ์ด์ ํ ๋นํ์ฌ ๋์๋ฅผ ์ ํ์ํต๋๋ค.
ํด๊ฒฐ์ฑ
: setInterval์ด ๋ฐํํ๋ ํ์ด๋จธ ID๋ฅผ ์ ์ฅํ๊ณ ๋ ์ด์ ํ์ํ์ง ์์ ๋ clearInterval์ ์ฌ์ฉํ์ฌ ํ์ด๋จธ๋ฅผ ์ค์งํฉ๋๋ค.
let timerId;
function startTimer() {
timerId = setInterval(function() {
// Some code that updates the UI
let data = new Array(1000000).fill(0); // Simulating a large data allocation
console.log("Timer tick");
}, 1000);
}
function stopTimer() {
clearInterval(timerId);
}
startTimer();
// Later, when the timer is no longer needed:
stopTimer();
์ ์ธ๊ณ ์ฌ์ฉ์์ ๋ํ ๋ฉ๋ชจ๋ฆฌ ๋์์ ์ํฅ
๋ฉ๋ชจ๋ฆฌ ๋์๋ ๋จ์ํ ๊ธฐ์ ์ ์ธ ๋ฌธ์ ๊ฐ ์๋๋๋ค. ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ์ค์ง์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค:
- ๋๋ฆฐ ์ฑ๋ฅ: ์ธํฐ๋ท ์ฐ๊ฒฐ์ด ๋๋ฆฌ๊ฑฐ๋ ์ฑ๋ฅ์ด ๋ฎ์ ์ฅ์น๋ฅผ ์ฌ์ฉํ๋ ์ง์ญ์ ์ฌ์ฉ์๋ ์ฑ๋ฅ ์ ํ๊ฐ ๋ ๋๋๋ฌ์ง๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ๋์์ ์ํฅ์ ๋ ๋ง์ด ๋ฐ์ต๋๋ค.
- ๋ฐฐํฐ๋ฆฌ ์๋ชจ: ๋ฉ๋ชจ๋ฆฌ ๋์๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ ๋ง์ ๋ฐฐํฐ๋ฆฌ ์ ๋ ฅ์ ์๋ชจํ๊ฒ ํ ์ ์์ผ๋ฉฐ, ์ด๋ ๋ชจ๋ฐ์ผ ์ฅ์น ์ฌ์ฉ์์๊ฒ ํนํ ๋ฌธ์ ๊ฐ ๋ฉ๋๋ค. ์ด๋ ์ ๊ธฐ ์ ๊ทผ์ด ์ ํ๋ ์ง์ญ์์ ํนํ ์ค์ํฉ๋๋ค.
- ๋ฐ์ดํฐ ์ฌ์ฉ๋: ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๋ฉ๋ชจ๋ฆฌ ๋์๋ ๋ฐ์ดํฐ ์ฌ์ฉ๋ ์ฆ๊ฐ๋ก ์ด์ด์ง ์ ์์ผ๋ฉฐ, ์ด๋ ๋ฐ์ดํฐ ์๊ธ์ ๊ฐ ์ ํ์ ์ด๊ฑฐ๋ ๋น์ผ ์ง์ญ์ ์ฌ์ฉ์์๊ฒ ๋น์ฉ ๋ถ๋ด์ ์ค ์ ์์ต๋๋ค.
- ์ ๊ทผ์ฑ ๋ฌธ์ : ๋ฉ๋ชจ๋ฆฌ ๋์๋ ์ ๊ทผ์ฑ ๋ฌธ์ ๋ฅผ ์ ํ์์ผ ์ฅ์ ๊ฐ ์๋ ์ฌ์ฉ์๊ฐ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ํธ ์์ฉํ๊ธฐ ๋ ์ด๋ ต๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์คํฌ๋ฆฐ ๋ฆฌ๋๋ ๋ฉ๋ชจ๋ฆฌ ๋์๋ก ์ธํด ๋ถํ๋ ค์ง DOM์ ์ฒ๋ฆฌํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช์ ์ ์์ต๋๋ค.
๊ฒฐ๋ก
์๋ฐ์คํฌ๋ฆฝํธ ๋ฉ๋ชจ๋ฆฌ ๋์๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ ๋ฌธ์ ์ ์ค์ํ ์์ธ์ด ๋ ์ ์์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ ๋์์ ์ผ๋ฐ์ ์ธ ์์ธ์ ์ดํดํ๊ณ , ํ๋กํ์ผ๋ง์ ์ํด ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ํ์ฉํ๋ฉฐ, ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด๋ฉด, ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํ์ง, ์ง๋จ ๋ฐ ํด๊ฒฐํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์น๋ ์ฅ์น์ ๊ด๊ณ์์ด ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ์ํํ๊ณ ๋ฐ์์ด ๋น ๋ฅธ ๊ฒฝํ์ ์ ๊ณตํ๋๋ก ๋ณด์ฅํ ์ ์์ต๋๋ค. ํนํ ์ฃผ์ ์ ๋ฐ์ดํธ๋ ๊ธฐ๋ฅ ์ถ๊ฐ ํ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ ๊ธฐ์ ์ผ๋ก ํ๋กํ์ผ๋งํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๊ธฐ์ตํ์ธ์, ์ ์ ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ ์ ์ธ๊ณ ์ฌ์ฉ์๋ฅผ ๊ธฐ์๊ฒ ํ๋ ๊ณ ์ฑ๋ฅ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ์ด์ ์ ๋๋ค. ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ๋ง๊ณ , ๋ฉ๋ชจ๋ฆฌ ํ๋กํ์ผ๋ง์ ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ์ ํ์ค ์ผ๋ถ๋ก ๋ง๋์ญ์์ค.